"""
题目描述: 全量和已占用字符集 、字符串统计 (分值100)
给定两个字符集合，一个是全量字符集，一个是已占用字符集，已占用字符集中的字符不能再使用。
要求输出剩余可用字符集。
输入描述:
1.输入一个字符串 一定包含@，@前为全量字符集 @后的为已占用字符集
2.已占用字符集中的宁符一定是全量字符集中的字符
3.字符集中的字符跟字符之间使用英文逗号隔开
4.每个字符都表示为字符+数字的形式用英文冒号分隔，比如a:1标识一个a字符
5. 字符只考虑英文字母，区分大小写
6.数字只考虑正整型 不超过100
7.如果一个字符都没被占用 @标识仍存在，例如 a:3,b:5,c:2@
输出描述:
输出可用字符集
不同的输出字符集之间用回车换行
注意 输出的字符顺序要跟输入的一致，如下面用例不能输出b:3,a:2,c:2
如果某个字符已全部占用 则不需要再输出
"""

"""
思路：暴力解法。根据@切割成两部分
    每个字符串都用两个列表分别存储 字符、数量，因为是一个个append进去的，所以字符肯定是有序的
    遍历 长的那个字符串，如果 某字符在短的字符串中存在，找到 短字符串中该字符的位置，对应找到数量
    长字符串当前字符剩余的数量=当前位置（该字符）数量 - 短字符串中该字符数量
    相同位置的 键 和 值 拼接成指定字符串，再输出结果
"""


big_key_list = []
big_val_list = []
small_key_list = []
small_val_list = []
big, small = input().split('@')
for item in list(big.split(',')):
    key, val = item.split(':')
    value = int(val)
    big_key_list.append(key)
    big_val_list.append(value)
# 已占用字符不为空
if small:
    for item in list(small.split(',')):
        key, val = item.split(':')
        value = int(val)
        small_key_list.append(key)
        small_val_list.append(value)

for index, char in enumerate(big_key_list):
    # 字符在 已占用字符集中
    if char in small_key_list:
        # small_key_list.index(char) 找到该字符出现的位置，取出 对应的数量
        # 用全量的 减去 已占用的
        big_val_list[index] = big_val_list[index] - small_val_list[small_key_list.index(char)]

result = []
for i in range(len(big_key_list)):
    if big_val_list[i] != 0:
        item = '{}:{}'.format(big_key_list[i], big_val_list[i])
        result.append(item)
print(','.join(result))
